`timescale 1ns / 1ps

/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Controlador del tiempo                                              ////
////                                                                     ////
//// Este archivo es parte del proyecto: Control de luces de semaforo    ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de un control de luces de semaforo como un proyecto  ////
//// del curso de Taller de Diseo Logico.                               ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Test Bench de modulo Controlador de tiempo.                       ////
////                                                                     ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////

module Timer_tb;

	// Inputs
	reg _clk_i;
	reg _sync_rst_i;
	reg HzActivado_i;
	reg [3:0] value_i;
	reg start_timer_i;

	// Outputs
	wire expired_o;

	// Instantiate the Unit Under Test (UUT)
	Timer uut (
		._clk_i(_clk_i), 
		._sync_rst_i(_sync_rst_i), 
		.HzActivado_i(HzActivado_i), 
		.value_i(value_i), 
		.start_timer_i(start_timer_i), 
		.expired_o(expired_o)
	);

	//Instanciacion del clock
	initial 
		begin
			_clk_i = 0;
			forever begin
			_clk_i = ~ _clk_i;
			#50;
			end
		end
	
	initial begin
		// Initialize Inputs
		_clk_i = 0;
		_sync_rst_i = 0;
		HzActivado_i = 0;
		value_i = 0;
		start_timer_i = 0;
	   
		// Wait 100 ns for global reset to finish
		#50;
        
		// Simulacion parte1
		value_i = 7;
		#60;
		HzActivado_i = 1;
		#50;
		start_timer_i = 1;
		
		
		
	end
      
endmodule
